/*
    二叉树高频题目-下-不含树型dp

    前置知识：
    讲解013-队列用数组实现、讲解017~018-二叉树入门内容

    特别说明：
    这一期和上一期视频，会讲解二叉树高频题目，但是不含树型dp的题目
    树型dp问题，会放在【必备】课程的动态规划大章节部分讲述
    树型dp中的换根dp问题，会放在【扩展】课程的动态规划大章节部分讲述
    AVL树的实现，树的左旋、右旋，这些内容也会在【扩展】课程里讲述

    ================================================

    题目1 : 普通二叉树上寻找两个节点的最近公共祖先
    题目2 : 搜索二叉树上寻找两个节点的最近公共祖先
    题目3 : 收集累加和等于aim的所有路径(递归恢复现场)
    题目4 : 验证平衡二叉树(树型dp沾边)
    题目5 : 验证搜索二叉树(树型dp沾边)
    题目6 : 修剪搜索二叉树
    题目7 : 二叉树打家劫舍问题(树型dp沾边)
    题目8 : 树节点的第 K 个祖先（自己加的题目，尽量掌握）
    题目9 : 求树上任意两个节点的最近公共祖先（自己加的题目，尽量掌握）

    注意 : 问题1又叫lca问题，非常重要的问题！
        Tarjan算法解决lca的批量查询、树链剖分算法解决lca的在线查询，会在【扩展】课程讲述
    注意 : 数组的打家劫舍问题变形很多，会在【必备】课程的动态规划大章节部分讲述
    注意 : 再次强调树型dp的整体讲解，会在【必备】课程的动态规划大章节部分讲述

*/